/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.uca.dss.curso2011.grupo5;

import au.com.bytecode.opencsv.CSVReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Clase que carga los trenes de la agencia desde un fichero csv.
 * @author Diego
 */
public class CargaTrenes {
    /**
     * Devuelve la lista de trenes disponibles en la agencia.
     * @param fichero fichero.csv con los trenes a cargar
     * @return los trenes disponibles en la agencia
     * @throws IllegalArgumentException
     * @throws RuntimeException
     */
    public List<Tren> obtenerTrenes(String fichero) throws IllegalArgumentException, RuntimeException
    {
        // Comprobamos los argumentos
        Args.comprobarCadena(fichero);

        List<Tren> trenes = new ArrayList<Tren>();

        try
        {
            CSVReader reader = new CSVReader(new FileReader(fichero));
            String [] nextLine;

            // Incluyo cada tren desde fichero
            while((nextLine = reader.readNext()) != null)
            {
               trenes.add(new Tren(Integer.parseInt(nextLine[1].trim()),nextLine[0].trim(),Float.parseFloat(nextLine[2].trim())));
            }
        }
        catch(FileNotFoundException f)
        {
            throw new RuntimeException("CargaTrenes(obtenerTrenes): El fichero no existe. Mensaje: " + f.getMessage());
        }
        catch(IOException io)
        {
            throw new RuntimeException("CargaTrenes(obtenerTrenes): Problema al leer el fichero. Mensaje: " + io.getMessage());
        }

        return trenes;
    }
}
